#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = '汤小洋'

'''
函数的返回值
'''


# 使用return关键字
def calc(num1, num2):
    # print(num1+num2)
    result = num1 + num2
    return result  # 使用return返回函数执行后的结果


result = calc(2, 7)
print(result * 2)
print(result / 2)


# 如果return后面没有跟返回值或没有使用return关键字，则默认返回值为None，类型为NoneType
def calc2(num1, num2):
    print(num1 - num2)
    # return


result = calc2(7, 2)
print(result)

'''
return关键字作用：
1.返回函数执行的结果  
2.结束函数的执行
'''


def calc3(num1, num2):
    result = num1 + num2
    print(result)
    if result >= 10:
        return
    print('结果小于10')


calc3(2, 4)

'''
返回多个值
'''


def f1():
    name = "tom"
    age = 23
    sex = "male"
    return name, age, sex


print(f1())  # 返回值实际上是一个tuple
a, b, c = f1()
print(a, b, c)

'''
将函数作为返回值，即返回一个函数
'''


def f2(x):
    def f3(y):
        print(x * y)  # 内部函数使用了外部函数的参数或局部变量，称为闭包

    return f3


fn = f2(2)
fn(5)
